/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"97DD24F8-60D5-474E-B284-30900FA3B336"}
 */
var aux_mensaje = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"5FD8A589-C81A-4D69-A8FD-5E159252F722",variableType:4}
 */
var es_preview = null;

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} [firstShow] form is shown first time after load
 * @param {JSEvent} [event] the event that triggered the action
 *
 * @properties={typeid:24,uuid:"356D74B6-EB03-4529-BC09-F9450D135A01"}
 */
function iniciar(firstShow, event) 
{
	databaseManager.setAutoSave(false)
	controller.newRecord()
	cod_movim		= 0
	concepto		= null
	cuentas_cyb_id	= null
	fecha_movim		= application.getServerTimeStamp()
	importe			= null
	imputacion_id	= null  
	referencia		= null
	valor_id		= null
	es_preview		= 0
}

/**
 *
 * @properties={typeid:24,uuid:"86EBF930-F6D4-4F90-9D8F-2E8FF1959004"}
 */
function cancelar() 
{
	if (es_preview== 0)
	{
	 	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir?' ,  'Si', 'No')
		if (resp == 'Si')
		{
			databaseManager.revertEditedRecords()
			databaseManager.setAutoSave(true) 
		}
	}
}

/**
 *
 * @properties={typeid:24,uuid:"2576B610-E36B-4E8B-925D-5CD5F57F5314"}
 */
function confirmar() 
{
	if (!concepto)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar el concepto','OK')
		return false
	}
	if (!cuentas_cyb_id)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar la cuenta de banco','OK')
		return false
	}
	if (!fecha_movim)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar la fecha de movimiento','OK')
		return false
	}
	if (!importe)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar el importe','OK')
		return false
	}
	if (!referencia)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar el número de cheque','OK')
		return false
	}
	if (!valor_id)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar el valor','OK')
		return false
	}
	if (globals.zparam_usa_proyecto == 1 && proyecto_id == null)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar el proyecto','OK')
		return false
	}

	var estado_dupli=ver_cheque_duplicado(); // 16/11/2010
	if (estado_dupli==false)// 16/11/2010
		return false;       // 16/11/2010
	aux_mensaje = movim_cyb_to_cuentas_cyb.descripcion
	var aux_cuentas_cyb_id=cuentas_cyb_id   // guarda para dar segunda alta
	var aux_valor_id=valor_id 
	// primero da de alta la entrada a la caja central
	cuentas_cyb_id= 1  // la caja default - hacer una global
	cod_movim=globals.zconf_cyb_cod_movim_ingreso    // 1=ingreso
	imputacion_id=globals.zconf_cyb_imputacion_extraccion    // 4=extraccion
	cheque_id=0
	empresa_id=0
	fecha_conciliacion=null
	marca_conciliacion=0
	op_detalle_id=0
	valor_id=1  //?  efectivo
	var aux_concepto=concepto
	var aux_fecha_movim=fecha_movim
	var aux_importe=importe
	var aux_referencia=referencia
	
	// actualiza saldo de caja  04/10/2010 lo hace aqui porque luego pierde la cuenta (cuentas_cyb_id)
	movim_cyb_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_efectivo+=importe;

	
	// da de alta la salida del banco
	controller.newRecord()
	concepto=aux_concepto
	fecha_movim=aux_fecha_movim
	importe=aux_importe
	referencia=aux_referencia
	cuentas_cyb_id= aux_cuentas_cyb_id  // la que salvó
	cod_movim=globals.zconf_cyb_cod_movim_egreso    // 2=egreso
	imputacion_id=globals.zconf_cyb_imputacion_extraccion    // 4=extraccion
	cheque_id=0
	empresa_id=0
	fecha_conciliacion=null
	marca_conciliacion=0
	op_detalle_id=0
	valor_id=aux_valor_id  // el que salvó
	// da de alta cheque
	movim_cyb_to_cheques.newRecord()
	movim_cyb_to_cheques.banco_id			= movim_cyb_to_cuentas_cyb.banco_id
	movim_cyb_to_cheques.banco_sucursal		= " "
	movim_cyb_to_cheques.boleta_dep			= 0
	movim_cyb_to_cheques.cheque_nro			= aux_referencia
	movim_cyb_to_cheques.concepto			= aux_concepto
	movim_cyb_to_cheques.cuentas_cyb_id		= aux_cuentas_cyb_id  // la que salvó
	movim_cyb_to_cheques.estado				= globals.zconf_chq_entregado_pago
	movim_cyb_to_cheques.fecha_emision		= fecha_movim
	movim_cyb_to_cheques.fecha_entrega		= fecha_movim
	movim_cyb_to_cheques.fecha_pago			= fecha_movim
	movim_cyb_to_cheques.importe			= aux_importe 
	movim_cyb_to_cheques.lugar_emision		= " "
	movim_cyb_to_cheques.marca_acredit		= 0
	movim_cyb_to_cheques.moneda_id			= globals.zparam_moneda_default
	movim_cyb_to_cheques.op_detalle_id		= 0
	movim_cyb_to_cheques.rec_detalle_id		= 0
	movim_cyb_to_cheques.titular			= " "
	movim_cyb_to_cheques.titular_cuit		= " "
	movim_cyb_to_cheques.titular_direccion	= " "
	movim_cyb_to_cheques.valor_id			= aux_valor_id
	// coloca cheque_id generado en movim_cyb
	cheque_id = movim_cyb_to_cheques.cheque_id
	// Graba 
	var estado=databaseManager.saveData()
	if (estado==true)
	{
		var resp=globals.DIALOGS.showInfoDialog('Extracciones', 'Se generó la Extracción de cuenta : ' + aux_mensaje + ' - Imprime:' ,  "Si", "No")
		// tema es_preview
		if (resp == 'Si')
		{
			es_preview=1
			forms.extraccion_imp.controller.showPrintPreview(true)	
		}
		else
		{
			iniciar();
		}
	}
	else
	{
		globals.DIALOGS.showWarningDialog('Extracciones',  'NO se pudo generar la Extracción  ' + movim_cyb_to_cuentas_cyb.descripcion,  "OK")
		cancelar();
		iniciar();
	}
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} [oldValue] old value
 * @param {Object} [newValue] new value
 * @param {JSEvent} [event] the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"A8EB55E7-705E-4621-94F8-4221AE62FD7C"}
 */
function ver_cheque_duplicado(oldValue, newValue, event) 
{
	globals.duplicacion_cheques(valor_id,movim_cyb_to_cuentas_cyb.banco_id,referencia)
	if (globals.gfilas != 0)  // si es cero, la factura no existe
	{ // ya existe , lo rechaza
		globals.DIALOGS.showWarningDialog('Aviso','Ya existe cheque nro. ' + referencia  + ' para banco ingresdo','OK')
		return false;
	}
	return true
}
